{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ALE Figures"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook is not part of the documentation, it is purely for reproducing images used in the documentation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from scipy.stats import gaussian_kde"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(42)\n",
    "x1 = np.random.uniform(size=(200, 1))\n",
    "x2 = x1 + np.random.normal(loc=0.0, scale=0.15, size=(200, 1))\n",
    "\n",
    "X = np.hstack((x1, x2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x1, x2);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 2, figsize=(12, 4), sharey='row')\n",
    "\n",
    "POINT = 0.3\n",
    "\n",
    "ax[0].scatter(x1, x2, marker='.', c='k');\n",
    "ax[0].set_xlabel('$x_1$');\n",
    "ax[0].set_ylabel('$x_2$');\n",
    "ax[0].axvline(POINT);\n",
    "ax[0].set_title('PDP estimation')\n",
    "\n",
    "# marginal density plot\n",
    "x = np.linspace(-0.4, 1.33)\n",
    "marginal = gaussian_kde(x2.squeeze())\n",
    "height = marginal(x)\n",
    "height *= POINT # squish to fit in axes\n",
    "\n",
    "ax[0].plot(-height + POINT , x, label='$p(x_2)$')\n",
    "\n",
    "# text\n",
    "pd_text = '$PD(x_1)$ averages $f(x_1, X_2)$\\n over the marginal\\n distribution of $X_2$'\n",
    "ax[0].annotate(pd_text, (0.3, -0.1), xytext=(0.5, -0.25),\n",
    "               arrowprops={'arrowstyle':'->'});\n",
    "ax[0].legend();\n",
    "\n",
    "\n",
    "ax[1].scatter(x1, x2, marker='.', c='k');\n",
    "ax[1].set_xlabel('$x_1$');\n",
    "ax[1].axvline(0.3);\n",
    "ax[1].set_title('M plot estimation');\n",
    "\n",
    "# conditional density plot\n",
    "x = x2[(x1 > POINT-0.05) & (x1 < POINT+0.05)]\n",
    "conditional = gaussian_kde(x.squeeze())\n",
    "x = np.linspace(-0.4, 1.1)\n",
    "height = conditional(x)\n",
    "height = (height / height.max()) * POINT\n",
    "\n",
    "ax[1].plot(-height + POINT, x, label='$p(x_2|x_1)$');\n",
    "\n",
    "# text\n",
    "m_text = '$M(x_1)$ averages $f(x_1, X_2)$\\n over the conditional\\n distribution of $X_2| X_1=x_1$'\n",
    "ax[1].annotate(m_text, (0.3, -0.1), xytext=(0.5, -0.25),\n",
    "               arrowprops={'arrowstyle':'->'});\n",
    "ax[1].legend();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig('pdp_m.png', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 30\n",
    "subx1 = x1[:N]\n",
    "subx2 = x2[:N]\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.scatter(subx1, subx2, marker='.', c='k')\n",
    "ax.set_xlabel('$x_1$')\n",
    "ax.set_ylabel('$x_2$');\n",
    "ax.set_title('ALE estimation')\n",
    "\n",
    "# vertical lines\n",
    "VLINES = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]\n",
    "for line in VLINES:\n",
    "    ax.axvline(line, ls=':', c='k');\n",
    "\n",
    "# ALE\n",
    "LOWER = 0.4\n",
    "UPPER = 0.6\n",
    "for px1, px2 in zip(subx1, subx2):\n",
    "    if (px1 > LOWER) & (px1 < UPPER):\n",
    "        ax.plot([LOWER, UPPER], [px2, px2], ls=':', marker='|', mew=3, c='C0');\n",
    "\n",
    "# labels for intervals\n",
    "labels = ['$N(1)$', '$N(2)$', '$N(3)$', '$N(4)$', '$N(5)$']\n",
    "offset = 0.025\n",
    "positions = np.array([0.1, 0.3, 0.5, 0.7, 0.9]) - offset\n",
    "\n",
    "for pos, lab in zip(positions, labels):\n",
    "    ax.text(pos, 0.0, lab);\n",
    "\n",
    "ax.set_xticks(VLINES);\n",
    "ax.set_xticklabels(['$z_0$', '$z_1$', '$z_2$', '$z_3$', '$z_4$', '$z_5$']);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig('ale_est.png', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "N = 30\n",
    "subx1 = x1[:N]\n",
    "subx2 = x2[:N]\n",
    "sub = np.hstack((subx1, subx2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(X):\n",
    "    return 3*X[:, 0] + 2*X[:, 1]**2\n",
    "\n",
    "def f2(X):\n",
    "    return X[:, 0]**2 + X[:, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from alibi.explainers import ALE, plot_ale"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {},
   "outputs": [],
   "source": [
    "ale = ALE(f, target_names=['target'])\n",
    "exp = ale.explain(sub, min_bin_points=5)\n",
    "\n",
    "ale2 = ALE(f2)\n",
    "exp2 = ale2.explain(sub, min_bin_points=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEaCAYAAADzDTuZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2de5hU1Znuf5+NjWgMnoBoRkAk8UYU8ZrTCWpjSwQvGMWTxttEZxwyRONldDJyIo5KIsyoIxjNsTVRZnRGcYyTES/o0NpEpTDADAji015aAeMNUFAE7Kb5zh9VTZq2q7uqa69aq2p9v+ep56ldtWvv931771q91rdrbVFVDMMwjLjZxbcAwzAMwz/WGBiGYRjWGBiGYRjWGBiGYRhYY2AYhmFgjYFhGIaBNQaGkTgiMlhENolIRZH297SI/LAY+zLKF2sMjJJBRBpE5BMR6d3h9Vki8vMsn1ER+Tzz5dz2+GnCut4RkZPbllV1tap+RVVbk9xPZl83iMiD7V9T1bGq+s9J78uIi16+BRhGLojIEOB4YCMwDvj3PD5+hKq+6UCWYZQN1jMwSoU/BxYCswAnQyIi0ltEbhWR1SLyoYjcLSJ9Mu/1F5EnRGSDiHwsIi+IyC4i8gAwGJjT1usQkSGZHkmvzGcbROTnIrIgs84cEeknIv8qIp+KyKJMY9emY6aIrMm8t0REjs+8Pgb4v0BtZjvL2m3/kszzXUTkOhFZJSIfici/iEjfzHttun6Y8bhORH7mIkuj9LDGwCgV/hz418zjFBHZx8E+pgMHASOAbwL7Addn3rsaeBfYG9iH9JeyquqFwGrgjMzQ0D9m2fYE4MLMNr8BpID7ga8BrwF/327dRRkNXwP+Dfh3EdlNVecCNwOzM/s6opP9XJR5jAKGAl8B7uywzkjgYKAGuF5EDu0yFSMKrDEwgkdERgL7A4+o6hLgLeC8PDbx35n/6Nsep3SyDwEmAlep6seq+hnpL94JmVVagK8D+6tqi6q+oPlN7HW/qr6lqhuBp4G3VHWeqm4jPeR1ZNuKqvqgqq5X1W2qehvQm/SXdy6cD/yTqjap6iZgMjChrZeS4UZV3aKqy4BlQGeNihEZ1hgYpcAPgWdVdV1m+d/Ib6joKFXdq93jmU7W2RvYHVjS1mgAczOvA9wCvAk8KyJNInJtnh4+bPd8SyfLX2lbEJFrROQ1EdmY0dEX6J/jfv4MWNVueRXp2mD7ntQH7Z5vbr9vI16sgGwETWbM/gdAhYi0fYn1BvYSkSMy/90mwTrSX8rfUtU/dnwz01O4GrhaRA4DnhORRapaDyQ29W+mPvBT0kM4r6rqdhH5BJA2Kd1s4j3Svag2BgPbSDc+A5PSaZQf1jMwQuf7QCswjPQ4+gjgUOAF0nWENipEZLd2j8p8dqKq24F7gdtFZACAiOzXNqQkIqeLyDczw0kbM5q2Zz7+Ienx+STYk/SX91qgl4hcD3y13fsfAkNEJNu5+xBwlYgcICJf4U81hm0J6TPKFGsMjND5Ienx9tWq+kHbg3RR9Px2Y+HXkv7Pvu3xXLttLOvwO4MZWfb1d6SHghaKyKfAPP40Vn9gZnkT6eLvr1T1+cx704DrMsNL1xTo9xnSw1Ovkx7i2Qqsafd+2yW160Xkvzv5/H3AA8Dvgbczn/9JgZqMCBC7uY1hGIZhPQPDMAzDGgPDMAzDGgPDMAwDawwMwzAMrDEwDMMwKOEfnfXv31+HDBnS4883NzcDUFmZ1+XoQRGyh5C1+STGXGL07IKkclyyZMk6Vd274+sl2xgMGTKExYsX9/jz1dXVADQ0NCQjyAMhewhZm09izCVGzy5IKkcRWdXZ6yXbGBTKdddd51tCwYTsIWRtPokxlxg9u8B1jiX7o7NjjjlGC+kZGIZhxIiILFHVYzq+Hm0BuampiaamJt8yCiJkDyFr80mMucTo2QWuc4y2Z1AO45ghewhZm09izCVGzy5IsGbQac8g2prBjTfe6FtCwYTsIWRtPokxlxg9u8B1jtH2DAzDMGLEW81ARO7L3Jh7RZb3RUTuEJE3ReQVETnKtSaAxsZGGhsbi7ErZ4TsIWRtPokxlxg9u8B1js57BiJyAuk54P9FVQ/r5P1TSc+3firwbWCmqn67u+1azSBsDyFr80mMubj0nEqlaGhooLq6mqqqqsS3HxIlXzNQ1d+LyJAuVjmTdEOhpG8qspeIfF1V33ep6+abb3a5+aIQsoeQtfkkxlxceU6lUtTU1NDc3ExlZSX19fVl3SC4PnZCKCDvx853cno389qXGgMRmQhMBBg8eHBBO/3Od75T0OdDIGQPIWvzSYy5uPLc0NBAc3Mzra2tNDc309DQUNaNgetjp6R+Z6Cq96jqMap6zN57f2lqjbxYsWIFK1Z0WsYoGUL2ELI2n8SYiyvP1dXVVFZWUlFRQWVl5Y5hlFInlUoxbdo0UqnUTq+7PnaKcjVRZpjoiSw1gzqgQVUfyiw3AtXdDRNZzSBsDyFr80mMuYRaMwix3tDV0FfJ1wxy4HHgMhF5mHQBeaPregHALbfc4noXzgnZQ8jafBJjLi49V1VV9eiLPNR6Q1dDX66PHeeNgYg8BFQD/UXkXeDvgV0BVPVu4CnSVxK9CWwGLnatCeDYY48txm6cErKHkLX5JMZcQvQcar2hbeirrZFqP/TlOsdiXE10bjfvK3Cpax0dWbp0KQAjRowo9q4TI2QPIWvzSYy5hOi5qy/dzijWkFJVVRX19fWd7st1jtH+Arkcxm5D9hCyNp/EmEuonnP9gg9lSCmGmoEXZsyY4VtCwYTsIWRtPokxl1A951pvCGVIyXWO0fYMDMMwciGUnkFSWM+gA4sWLQLCLG7lSsgeQtbmkxhzKXXPXY3jFxPXOUbbMwh1HDMfQvYQsjafxJhLjJ5dYDUDR9x5552+JRRMyB5C1uaTGHOJ0bMLXOcYbc/AMIpJiL92NeLEegYdWLBgAVDaE4eF7CFkbcWmfQGyoqKCX/7yl0ycONG3rKJhx0IyuM4x2p5BOYxjhuwhZG3FZtq0aUyZMoXW1lYADjjggKhuEG/HQjJYzcARdXV1viUUTMgeQtZWbNr/2rVXr17R3dPAjoVkcJ1jtD0DwygmVjMwQsHbPZBDZf78+cyfP9+3jIII2UPI2nxQVVXF5MmTaW5uji4XOxaSwXWO0fYMymEcM2QPIWvzSYy5xOjZBa5rBtE2Bm0FvKFDhyYlqeiE7CFkbT6JMZcYPbsgqRytMTAMwzCsZtCRefPmMW/ePN8yCiJkDyFr80mMucTo2QWuc4y2Z1AO45ghewhZm09izCVGzy6wmkEWCm0M1qxZA8CgQYOSklR0QvYQsjafxJhLjJ5dkFSO1hgYhmEYVjPoyNy5c5k7d65vGQURsoeQtfkkxlxi9OyC22+/nYsvvphUKuVk+9H2DMphHDNkDyFr80mMucToOWlSqRQjR45k+/bt9OnTp6C7rdncRB14+OGHfUsomJA9hKzNJzHmEqPnpGnfkLq6D3O0jcG+++7rW0LBhOwhZG0+eWj5p+knyz/lqtEH+RVTJGL0nDTV1dX07t17x32Y23pbSRJtYzBnzhwAzjjjDM9Kek7IHkLW5pOZ9W/seB7DF2MqlWJm/cc7lmPw7IKqqipuvPFGli9fzqRJk5xMdhhtAfm2227jtttu8y2jIEL2ELK2kGhp3U5tXYr/+J93AdjS3EptXYo5y94D4NOtLdTWpZi74n0APv68mdq6FPNWfgjAR59tpbYuRUPjRwC8t2ELtXUpXnxjHQCr12+mti7Fwqb1ALy1dhO1dSmWrEp/QTd+8Bm1dSmWrdkAwKvvbaS2LsWr720EYNmaDdTWpWj84DMAlqz6mNq6FG+t3QTAwqb11NalWL1+MwAvvrGO2roU723YQiqVYuxfXO0wvbh48sknWb16tbNZb6PtGTz66KO+JRRMyB5C1mYUh4aGBlpaWnzLKBtcn1NFuZpIRMYAM4EK4NeqOr3D+4OBfwb2yqxzrao+1dU27XcGRiky5Nondzx/Z/ppHpW4p+12nwMu//cdr5W751LA2+8MRKQCuAsYCwwDzhWRYR1Wuw54RFWPBCYAv3Kt67HHHuOxxx5zvRunhOwhZG1GcaiqqqK+vt63jLLB9TlVjGGi44A3VbUJQEQeBs4EVrZbR4GvZp73Bd5zLeqOO+4A4Oyzz3a9K2eE7CFkbT7p++5LAFz0w4v8CikSVVVV9L3r/wLxeHaF63PK+TCRiJwDjFHVSzLLFwLfVtXL2q3zdeBZ4H8BewAnq+qSTrY1EZgIMHjw4KNXrVrVY10bN6YLZH379u3xNnwTsoeQtfkkxlxi9OyCpHIM/Udn5wKzVPU2EakCHhCRw1R1e/uVVPUe4B5I1wwK2WE5HJghewhZm09izCVGzy5wnWMxLi39I9B+mr2Bmdfa85fAIwCqmgJ2A/q7FDV79mxmz57tchfOCdlDyNp8EmMu2TynUimmTZvmbK6dcsP1sVOMYaJewOtADelGYBFwnqq+2m6dp4HZqjpLRA4F6oH9tAtxNjdR2B5C1uaTGHPpzHPblUZtv6gtZK6dWHB9PwPnw0Squk1ELgOeIX3Z6H2q+qqI3AQsVtXHgauBe0XkKtLF5Iu6agiS4KmnurxytSQI2UPI2nwSYy6deW5oaKC5uZnW1lZnc+2UG66PnaLUDDK/GXiqw2vXt3u+EvhuMbS0sfvuuxdzd04I2UPI2nwSYy6dea6urqaystLpXDvlhutjJ5QCctF58MEHAbjgggs8K+k5IXsIWZtPYsylM89tv0FoaGigurraegU54PrYsfsZlPDYbcgeQtbmkxhzidGzC+weyFkotDFomzNl1113TUpS0QnZQ8jafBJjLjF6dkFSOYb+O4OiUw4HZsgeQtbmkxhzidGzC1znGO0U1rNmzWLWrFm+ZRREyB5C1uaTGHOJ0bMLXOcY7TBROYxjhuwhZG0+iTGXGD27wGoGWbAprA3DMPLH2xTWhmEYRvhE2xjce++93Hvvvb5lFETIHkLW5pMYc4nRswtc5xjtMNHJJ58MwLx585KSVHRC9hCyNp/EmEuMnl2QVI5WMzAMwzDsdwaGEQK3/9frO55fNfogj0qKR4yeS5FoG4Nf/Sp9m+Uf//jHnpX0nJA9hKzNJzPr39jxPOkvxlQqFeRcPy49x4TrcyraAvKcOXOYM2eObxkFEbKHkLWFREvrdmrrUvzH/7wLwJbmVmrrUsxZlr4N+KdbW6itSzF3xfsAfPx5M7V1Keat/BCAjz7bSm1div/3u/nU1NRwwz/OZPxdL3DPf/4egNXrN1Nbl2Jh03oA3lq7idq6FEtWfQxA4wefUVuXYtmaDQC8+t5GautSvPpe+haLy9ZsoLYuReMHnwGwZNXH1NaleGvtJgAWNq2nti7F6vWbAXjxjXXU1qV4b8MWABoaP3KYXly4Pqei7Rk8/fTTviUUTMgeQtZWjrzyyis0NzdDr1ZUt7PslWVw5gm+ZRkJ4vqcsgKyYRSRIdc+ueP5O9NPS2y7Id85zJVno2dYAbkDM2fOBOCKK67wrKTnhOwhZG3liN0foPxxfU5FWzOor6+nvr7et4yCCNlDyNp8MmDtYgasXcwVNQcmvu2qqiomT54cXEPg0nNMuD6nbJjIMAwjImxuIsMwDCMr0TYGt956K7feeqtvGQURsoeQtfkkxlxi9OwC1zlGW0BOpVK+JRRMyB5C1uaTGHOJ0bMLXOdoNQPDMIyIsJqBYRiGkZVoG4Pp06czffp03zIKImQPIWvzSYy5xOjZBa5zLErNQETGADOBCuDXqvolRyLyA+AGQIFlqnqeS01Lly51ufmiELKHkLX5JMZcYvTsAtc5Oq8ZiEgF8DowGngXWAScq6or261zIPAIcJKqfiIiA1S1yxmurGZglCIxTucco+eQ8TkdxXHAm6ralBHyMHAmsLLdOn8F3KWqnwB01xAYRqniYzpn31Nb2xTWpUExagb7AWvaLb+bea09BwEHichLIrIwM6zklKlTpzJ16lTXu3FKyB5C1hYSSU1h3TZV9HsbtlBbl+LFN9YB8Lt5LzL+rheYWvcwNTU1/PbZF20K6xLF9TkVyu8MegEHAtXAQOD3InK4qm5ov5KITAQmAgwePLigHTY2Nhb0+RAI2UPI2mLi5ZdfRnU727dvZ1tzM3/4wx9g77DmLjJyw/U5VYyaQRVwg6qeklmeDKCq09qtczfwsqren1muB65V1UXZtms1A6MUKfZ0ziFMbW1TWIeFz5rBIuBAETkA+CMwAeh4pdDvgHOB+0WkP+lho6YiaDOMssamtjZyxXljoKrbROQy4BnSl5bep6qvishNwGJVfTzz3vdEZCXQCvytqq53qev6668H4KabbnK5G6eE7CFkbT4Zvku6NjBq1Kii7bOqqsprI+DDczni+pwqSs1AVZ8Cnurw2vXtnivwN5lHUVizZk33KwVOyB5C1uaTfu8vBOCq0T/yrKR4xOjZBa7PKZubyDAMIyJsbiLDMAwjK9E2BpMnT2by5Mm+ZRREyB5C1uaTGHOJ0bMLXOcYyu8Mis769U7r00UhZA8ha/NJjLnE6NkFrnO0moFhGEZEWM3AMAzDyEq0jcE111zDNddc41tGQYTsIWRtPokxlxg9u8B1jtHWDLZs2eJbQsGE7CFkbT6JMZcYPbvAdY5WMzAMw4gIqxkYhmEYWYm2Mbjyyiu58sorfcsoiJA9hKzNJzHmEqNnF7jOMdrGwDB88FqvobzWa+hOt4Isd2L0XIpYzcAoGXzfvjEJijG3f2g52f0MwsJqBkZJ03aTlilTplBTU0MqlfItKRGSvu3lE8+lb3P583sfpaamht/NS9/mcmFT+terb63dZLe9NDol2sbg0ksv5dJLL/UtoyBC9pC0toaGBpqbm2ltbaW5uZmGhobEtl1OpFILM7e5TOf08ssv+5ZkJITr8z3a3xn06dPHt4SCCdlD0tqqq6uprKzccfvG6urqRLfvi10rdmH2j/40lNOnsmKn5a/ututOy1/bo3Kn5QF77rbT8uknfZfbf1FDSyancSd9Z6ehom/s/ZWd1j943z13Wv7Wn/XdafmIQXvttHz0/l/bafl/D+230/LIA/sz8sD+O5arDx6QYxJGd7g+361mUAaENkbsinLwaTUDqxn4xuc9kA2HhHDD82Lh+/aNSfDtA77mfB+h5VQMz0bhRNsYTJw4EYB77rnHs5KeM3HiRJYuXfqlsfQQvgjKIV9I/r/sl9/+OAFV3RNS76BYnssd1+dUzgVkERktIveKyIjM8kQniopEv3796Nevn28ZBdGvXz8OOeQQKisrqaioCGosvRzyLcYVTElfTfTehi2MveUZxlx0JVOmTGH0Wecy9pZn7GqiMsD1OZVPz+AvgEnAdSLyNWCEG0nFYdq0ab4lFEybh0mTJgXzX2Ab5ZBvZ1cwhZJvV2zYsIFtLdtobW2lpaWFDRs2+JZkJIDrcyrnArKI3KOqEzPPpwM1qnqsS3FdEVMBOaQuf0y4qMcUq4AcUh3JCshhkUQBecdfVFWvFZGfJKLMExdffDEA999/v2clXdPViR2yh5C15UpVVRX19fUl1xCXqm6ja1yfU902BiIyE7hSVf+z/euq+ksniorEoEGDfEvIia6GKkL2ELK2fEj6ypzhu6RrA6NGjUpsm50R0hVFxfJc7rg+p7odJhKRnwNHALWqullETgGuV9XvOlXWDbEME4XW5TcMo7Tp8TCRql4nIucB80WkGdgEXOtAo9EJ1uUvL9rP3HnV6IM8KikeMXouRXIZJqoB/gr4HPg68Beq2pjPTkRkDDATqAB+rarTs6w3HngUOFZVnf7bf8EFFwDw4IMPutxNImTr8ofsIWRtPplZ/8aO51sX/zaKBr69Z2sMeo7rcyqX3xn8DJiiqtXAOcBsETkp1x2ISAVwFzAWGAacKyLDOllvT+AKoCgzax188MEcfPDBxdiVM0L2ELK2UJgyZQo1o7/H2FueSfR3BrV1KV58Yx0Aq9dvtllLywTX51Quw0QntXu+XETGAr8FvpPjPo4D3lTVJgAReRg4E1jZYb2pwD8Af5vjdgtiypQpxdiNU0L2ELK2UGi7KMB+B2DkgutzqkcT1YlIH1XdkuO65wBjVPWSzPKFwLdV9bJ26xwF/ExVx4tIA3BNd8NEsRSQjfKi/TX37956ZhQXBdjvDMIi0Ynqcm0IckFEdgH+Cbgoh3UnAhMBBg8eXNB+J0yYAMDDDz9c0HZ8ErKHkLWFwtSpU6OoGRjJ4PqcKsZEdX8E2l8gOzDzWht7AocBDSICsC/wuIiM69g7UNV7gHsg3TMoRNSIESU9mwYQtoeQtfnk6N7psf6RI0dy1eg4/ktu79noOa7PKef3MxCRXsDrQA3pRmARcJ6qvppl/QZsmMgwDMMJ3u6BrKrbgMuAZ4DXgEdU9VURuUlExrnev2EYhtE9Rbmfgao+BTzV4bXrs6xbXQxN48ePB+C3v/1tMXbnhJA9hKzNJzHmEqNnF7jOMdqb25RD0S5kDyFr80mMucTo2QWuc7R7IBuGYUSEt5qBYRiGET7RNgbjxo1j3LjSrl+H7CFkbT6JMZcYPbvAdY7R1gxqamp8SyiYED203ZVt6NChHHDAAb7lBEeIfzPXxOjZBa5ztJqBkRh27wXDCB+rGRjO6eyubIZhlAbRNgZjx45l7NixvmUURGgeqqurqayspKKiAlXl8ccf9y0pOEL7mxWDGD27wHWO0dYMzjjjDN8SCiY0D+3vyrZ+/XqGDh3qW1JwhPY3KwYxenaB6xytZlAGtBVtbQZMwzC6I9EprI1wsKJtYVhDahhpom0MTj75ZADmzZvnWUnPOfnkk3nnnXe+VLQN4UutFPL10ZCWQi5JE6NnF7jOMdrGoLa21reEgqmtreWtt97ijjvu2PGFVl1d7VsWUBr5dnb1k+vGoBRySZoYPbvAdY5WMygDbKijZ9gQmxEj2WoG1hgYUWMNqREbVkDuQNtwSin/MCofD8X+0nOdb1J+qqqqitoIlMNxly8xenaB6xyjbQwuuugi3xIKJlcPPoZD2rS5aIRKeXinHI67fInRswuc56iqJfk4+uij1ciNm2++WSsqKhTQiooKvfnmm4uy3wULFmifPn20oqJC+/TpowsWLEhku778GEY5ACzWTr5To52OoqWlhZaWFt8yCiJXD+2niSjWFUctLS3U19c7mavIh5+kKIfjLl9i9OwC1zlGO0w0evRooLTHMXP10H6aiGLVDEaPHs2nn35KZWVl4pe9+vCTFOVw3OVLjJ5d4DrHaBuDSy65xLeEgsnHQ7ELpW3avvGNbzj50i62n6Qoh+MuX2L07ALXOdqlpYZhGBFh9zPowObNm9m8ebNvGQURsoeQtfkkxlxi9OwC1zlGO0x06qmnAqUxjpnt8syQPYSszScx5hKjZxe4zjHaxmDSpEm+JeREV9fUh+whZG0+iTGXGD27wHWOVjMInGnTpjFlyhRaW1upqKhg6tSpTJ482bcswzBKFK81AxEZIyKNIvKmiFzbyft/IyIrReQVEakXkf1da9q4cSMbN250vZuC6eqa+pA9hKzNJzHmEqNnF7jO0XnPQEQqgNeB0cC7wCLgXFVd2W6dUcDLqrpZRCYB1ara5XythfYMSmm+lGw1g5A9hKzNJzHmEqNnFySVo8+J6o4D3lTVpoyQh4EzgR2Ngao+3279hcAFrkWdcsoprFixglQqFfz16tmuqb/88ss9qMmNkLX5JMZcYvTsAtc5FqNncA4wRlUvySxfCHxbVS/Lsv6dwAeq+vNO3psITAQYPHjw0atWreqRplAnOrPplA3DcE1JTGEtIhcAxwAndva+qt4D3APpYaKe7qehoYEvvviC7du3B3OryJ40UOvWrQOgf//+xZCYFyFr80mMucTo2QWucyxGY/BHYFC75YGZ13ZCRE4GfgacqKpfuBTUvggbykRnPbkF4znnnLPjs6ERsjafxJhLjJ5d4DrHYjQGi4ADReQA0o3ABOC89iuIyJFAHenhpI9cC6qqqmL69OksX76cSZMmee8VwJ+uGspnUrerr77avbAeErI2n8SYS4yeXeA6x6L8zkBETgVmABXAfar6CxG5ifS82o+LyDzgcOD9zEdWq+q4rrZZjr8zKPWaQanrN4wYsHsgd+CDDz4AYN99901KUtHpykOxv5g71jweeeQRjjnmmJLO1wXlcNzlS4yeXZBUjiVRQC4mEyZMAEp7HDObBx9XS3WseVx++eUMHjy4pPN1QTkcd/kSo2cXuM4x2sbg2mu/9EPokiObh54UowulY83jJz/5CYceeqjTfZYi5XDc5UuMnl3gOsdoh4nKGV+/o7CagWGEj9UMOrBmzRoABg0a1M2a4dKVB99fzOWQrwtizCVGzy5IKkdrDDpQDvOlhOwhZG0+iTGXGD27oBzmJgqS6667zreEggnZQ8jafBJjLjF6doHrHKPtGRiGYcSI3QO5A01NTTQ1NfmWURAhewhZm09izCVGzy5wnWO0PYNyGMcM2UPI2nwSYy4xenaB1QwcceONN/qWUDAhewhZm09izCVGzy5wnWO0PQPDMIwYsZpBBxobG2lsbPQtoyBC9hCyNp/EmEuMnl3gOsdoewblMI4ZsoeQtfkkxlxi9OwCqxk44uabb/YtoWBC9hCyNp/EmEuMnl3gOsdoewaGYRgxYjWDDqxYsYIVK1b4llEQIXsIWZtPYswlRs8ucJ1jtD2DchjHDNlDyNp8EmMuMXp2gdUMHHHLLbf4llAwIXsIWZtPYswlRs8ucJ1jtD0DwzCMGLGaQQeWLl3K0qVLfcsoiJA9hKzNJzHmEqNnF7jOMdqeQTmMY4bsIWRtPokxlxg9u8BqBo6YMWOGbwkFE7KHkLX5JMZcYvTsAuc5qmpJPo4++mgNhbvvvlsBXbly5Y7XDjnkEG1qatLNmzfrCSecoNu2bVNV1Ysvvlj33ntv/da3vrVj3S+++EKPP/54bWlpCU7z6tWrtbq6Wg899FAdNmyYzpgxw5vmXMjV15YtW/TYY4/V4cOH67Bhw/T6669X1XB95Us+x6Sq6rZt23TEiBF62mwWMX8AAAzISURBVGmnqWr55NAZ+WSz//7762GHHaZHHHGEtn3nlHo2wGLt5Ds12prBokWLWLRoUSLbWr58OSNGjODJJ58EYOvWrXz44YcMGTKE++67j7PPPpuKigoALrroIubOnbvT5ysrK6mpqWH27NlF85Cr5l69enHbbbexcuVKFi5cyF133cXKlSu71ZxkvvmQq6/evXvz3HPPsWzZMpYuXcrcuXNZuHBhj/8WuVKsXPI5JgFmzpzJoYceumM5yRx8HQvZyDeb559/nqVLl9I2LO36GMmG8xw7ayFK4VFoz+DEE0/UE088saBttHH88cfrQw89pNXV1aqqumTJEq2qqlJV1aqqKn377bd3Wv/tt9/eqWegqrp06VIdO3ZsXvstxEO+mtsYN26cPvvss91qTjLffOiJr88//1yPPPJIXbhwoar27G+RK8XKJZ8c1qxZoyeddJLW19fv6BmoJpeDr2MhG/lks//+++vatWu/tA2Xx0g2ksqRLD0D71/qPX0U2hgsX75cly9fXtA22ujXr59u3rxZhw0bphs2bNBZs2bpj370I/3iiy90n332+dL6nTUG27Zt0/79++e130I85Ku5TfegQYN048aN3WpOMt98yMfXtm3b9IgjjtA99thDf/rTn+70er5/i1wpVi755DB+/HhdvHixPv/88zs1Bknl4OtYyEY+2QwZMkSPPPJIPeqoo7Surm7H6y6PkWwklWO2xqAoBWQRGQPMBCqAX6vq9A7v9wb+BTgaWA/Uquo7LjUddthhiWxnzZo19OvXjz59+jB69GieeeYZXnnlFQ4//HDWrVvHXnvtldN2KioqqKys5LPPPmPPPffM6TM99dATzZs2bWL8+PHMmDGDr371q91qTirffMjXV0VFBUuXLmXDhg2cddZZrFixgsMOO6xHf4tcKUYu+eTwxBNPMGDAAI4++ugvXaWSVA4+joVs5HuMvPjii+y333589NFHjB49mkMOOYQTTjjB6TGSDdc5Oq8ZiEgFcBcwFhgGnCsiwzqs9pfAJ6r6TeB24B9c61qwYAELFiwoeDvLly/n8MMPB+DUU0/lySefZPny5QwfPpw+ffqwdevWnLf1xRdfsNtuu+W8fk895Ku5paWF8ePHc/7553P22WfnpDmpfPOhp3+Lvfbai1GjRu1Uy8n3b5ErxcglnxxeeuklHn/8cYYMGcKECRN47rnnuOCCC3a8n0QOPo6FbOR7jOy3334ADBgwgLPOOos//OEPO95zdYxkw3mOnXUXknwAVcAz7ZYnA5M7rPMMUJV53gtYR+Y3ENkeodQMpk2bpjfccIOqqm7dulWHDBmi++yzj37yySeqqjpw4EDdsmXLTp/pbJho3bp1evDBB+e17556yEfz9u3b9cILL9QrrrjiS9vpSrOPceJ8fH300Uc7Xt+8ebOOHDlS58yZo6o9+1vkSjFy6ckxqapfGiZKKoeQagb5ZLNp0yb99NNPdzyvqqrSp59+WlXdHiPZcF0zKMbVRPsBa9otv5t5rdN1VHUbsBHo13FDIjJRRBaLyOK1a9cWJKquro66urqCtgE7/6fRu3dvhg8fTmVl5Y7u5ve+9z1efPHFHeufe+65VFVV0djYyMCBA/nNb34DpK9YOO2004riIR/NL730Eg888ADPPfccI0aMYMSIETz11FPdak4q33zIx9f777/PqFGjGD58OMceeyyjR4/m9NNPB3r2t8iVYuSS7zGZjaRy8HEsZCOfbD788ENGjhzJEUccwXHHHcdpp53GmDFjALfHSDac59hZC5HkAziHdJ2gbflC4M4O66wABrZbfgvo39V2Q/qdQVcsWbJEL7jggm7XO+uss7SxsbEIirqnFDXnQrn6yhfLITsxZIPHnsEfgUHtlgdmXut0HRHpBfQlXUh2xvz585k/f77LXQBw1FFHMWrUKFpbW7Ou09zczPe//30OOuigvLbtykMSmouVbz64/FvkSgi5FDuHEDznSgjHSDZc5+h8bqLMl/vrQA3pL/1FwHmq+mq7dS4FDlfVvxaRCcDZqvqDrrZrcxOF7SFkbT6JMZcYPbvA9dxERZmoTkROBWaQvrT0PlX9hYjcRLq78riI7AY8ABwJfAxMUNWmrrZZaGPQ1JTe/NChQ3u8Dd+E7CFkbT6JMZcYPbsgqRy9NgYusPsZGIZh5I/dz6AD8+bNY968eb5lFETIHkLW5pMYc4nRswtc5xhtz6AcxjFD9hCyNp/EmEuMnl1QFjUDFxTaGKxZk/7pw6BBg7pZM1xC9hCyNp/EmEuMnl2QVI7WGBiGYRhWM+jI3Llzv3RfgVIjZA8ha/NJjLnE6NkFrnOMtmdQDuOYIXsIWZtPYswlRs8usJpBFgptDD744AMA9t13307fT6VSNDQ0UF1dTVVVVY/345LuPPgkZG0+iTGXGD27IKkcrTHIg1QqRU1NDc3NzVRWVlJfXx9sg2AYhpEPVjPowJw5c5gzZ06n7zU0NNDc3ExrayvNzc3Bdm+78uCbkLX5JMZcYvTsAtc5Rtsz6Gr8rVR6BiGPxYaszScx5hKjZxdYzSALhTYG69atA6B///6dvl8KNYPuPPgkZG0+iTGXGD27IKkcrTEwDMMwrGbQkccee4zHHnvMt4yCCNlDyNp8EmMuMXp2gesco+0Z5DP+FuqQUchjsSFr80mMucTo2QVWM8hCoY3Bxo0bAejbt2+X64VcTM7Vgw9C1uaTGHOJ0bMLksoxW2PQq6CtljC5BtrZZaahNAYhn1wha/NJjLnE6NkFrnOMtmYwe/ZsZs+e3e161dXVVFZWUlFRQWVl5Y6uWgjk6sEHIWvzSYy5xOjZBa5zjHaYyGoGbglZm09izCVGzy6wmkEWCm0MNm/eDMDuu++elKSiE7KHkLX5JMZcYvTsgqRytJpBB8rhwAzZQ8jafBJjLjF6doHrHKOtGTz44IM8+OCDvmUURMgeQtbmkxhzidGzC1znGO0wUTmMY4bsIWRtPokxlxg9u8BqBlkotDFoaWkBYNddd01KUtEJ2UPI2nwSYy4xenZBUjlazaAD5XBghuwhZG0+iTGXGD27wHWO0dYMZs2axaxZs3zLKIiQPYSszScx5hKjZxe4zjHaYaJyGMcM2UPI2nwSYy4xenaB1QyyICJrgVUFbqY/sC4BOT4J2UPI2nwSYy4xenZBEjnur6p7d3yxZBuDJBCRxZ21kKVEyB5C1uaTGHOJ0bMLXOYYbc3AMAzD+BPWGBiGYRjRNwb3+BaQACF7CFmbT2LMJUbPLnCWY9Q1A8MwDCNN7D0DwzAMA2sMDMMwDKwxMAzDMIisMRCR50RkaeaxVUR+4FtTTwjZR8jafBFrJrH6TpJiZhhlAVlEJgGjgHNVtdW3np4Sso+Qtfki1kxi9Z0kxcgwqp4BgIj8OTAWOB/YTUT+WUTuFZHzPUvLiw4+9heR34jIo55lAV/SdkYm39ki8j3P0rzRIZODRORuEXk0c5KXLe19q2qriOwhIotF5HTf2kqFDsfO8SLyQub4qU5yP1E1BiLyf0gH+gNVbQHOBh5V1b8CxnkVlwcdfahqk6r+pW9d0Km232Xy/Wug1q86P3SSyWuq+tfAD4Dv+lXnjk7ON4C/Ax7xp6q06CRDBTYBuwHvJrmvaO5nkPlP5MfA6aq6NfPyQGB55nlJdF+z+AiCbrRdB9xVfFV+yZaJiIwDJgEP+NLmks58i8hoYCXpLzKjG7IcOy+o6nwR2Qf4J9INRTL7i6VmICLrgY+BzzMv/RJoBj5R1SdE5GFVneBNYI505kNVf5N571FVPSckbcB9wHTgv1R1ni9tvujq75V5/0lVPc2LOIdkORaGAnsAw4AtwFmqut2PwvDp5lyvBP4tyfM9mp6Bqvbr+JqI7AHcKSKnAXOKryp/svjoB/wCOFJEJqvqtOIry6rtcuBkoK+IfFNV7y6+Mn9kyaSa9BBlb+CpYmsqBp35bkNELgLWWUPQNVmOnbOBU4C9gDuT3F80PQPDMAwjO1EVkA3DMIzOscbAMAzDsMbAMAzDsMbAMAzDwBoDwzAMA2sMDMMwDKwxMAzDMLDGwDAMw8AaA8MoGBF5PjPvDiLycxH5pW9NhpEv0UxHYRgO+XvgJhEZABxJCc2Aaxht2HQUhpEAIjIf+ApQraqfichQ4GdAX5+TBxpGrtgwkWEUiIgcDnwdaFbVzwBCuseEYeSCNQaGUQAi8nXgX4EzgU0iMsazJMPoEdYYGEYPEZHdgceAq1X1NWAq6fqBYZQcVjMwDAe0u8fEaODXvu4xYRi5Yo2BYRiGYcNEhmEYhjUGhmEYBtYYGIZhGFhjYBiGYWCNgWEYhoE1BoZhGAbWGBiGYRhYY2AYhmFgjYFhGIYB/H8v25H25TBYnQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "ax.scatter(subx1, subx2, marker='.', c='k')\n",
    "ax.set_xlabel('$x_1$')\n",
    "ax.set_ylabel('$x_2$');\n",
    "ax.set_title('ALE estimation')\n",
    "\n",
    "# vertical lines\n",
    "#VLINES = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]\n",
    "VLINES = exp.feature_values[0]\n",
    "for line in VLINES:\n",
    "    ax.axvline(line, ls=':', c='k');\n",
    "\n",
    "# ALE\n",
    "#LOWER = 0.4\n",
    "#UPPER = 0.6\n",
    "LOWER = exp.feature_values[0][3]\n",
    "UPPER = exp.feature_values[0][4]\n",
    "for px1, px2 in zip(subx1, subx2):\n",
    "    if (px1 > LOWER) & (px1 < UPPER):\n",
    "        ax.plot([LOWER, UPPER], [px2, px2], ls=':', marker='|', mew=3, c='C0');\n",
    "\n",
    "# labels for intervals\n",
    "labels = ['$N(1)$', '$N(2)$', '$N(3)$', '$N(4)$', '$N(5)$']\n",
    "offset = 0.025\n",
    "#positions = np.array([0.1, 0.3, 0.5, 0.7, 0.9]) - offset\n",
    "positions = exp.feature_values[0][:-1] + \\\n",
    "    (exp.feature_values[0][1:] - exp.feature_values[0][:-1]) / 2 - offset\n",
    "\n",
    "for pos, lab in zip(positions, labels):\n",
    "    ax.text(pos, 0.0, lab);\n",
    "\n",
    "ax.set_xticks(VLINES);\n",
    "ax.set_xticklabels(['$z_0$', '$z_1$', '$z_2$', '$z_3$', '$z_4$', '$z_5$']);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig('ale_est.png', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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d+3xA8zsamCLu88KnaUtMrMxwBeASuBhd68Nm0hERCQeNLkSEREREREpgCQfAiciIiIiIhIbmlyJiIiIiIgUgCZXIiIiIiIiBaDJlYiIiIiISAFociUiIiIiIlIAmlyJiIiIiIgUgCZXIiIiIpI3M/uFmY1M3/53M/tR6EwiobUPHUBEREREEum7wJ1m1hM4CbgocB6R4LTnSiQmtAVQRESSxN0XAQbcCIxz93oz62tmT5rZjMDxRILQniuR+NAWQBERSQwzGwQcBWx19+0A7r4WmKjJlZQq7bkSiQltARQRkaQws6OAZ4CLgR1mdm7gSCKxoMmVSEw02AJY13ALoLtPDJtMRETkE2bWGXgOuMnd3wa+T+roC5GSp8mVSAxoC6CIiCSFu3/k7tXuPi/98SJ3rwYws+5m9ghwkpndGjSoSADm7qEziJS09BbABcDt7j7PzM4E7t7/QpVeZoa7XxYspIiIiIg0S5MrkRgzs+7AXcBI4Al3nxQ4koiIiIhkocmViIiIiIhIAeicKxERERERkQLQ5EpERERERKQANLkSEREREREpAE2uRERERERECkCTKxERERERkQLQ5EpERERERKQANLkSEREREREpAE2uRERERERECuD/ARk9OrJxVC0AAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "\n",
    "fig, ax = plt.subplots(1, 2, figsize=(12, 4))\n",
    "ax[0].scatter(subx1, subx2, marker='.', c='k')\n",
    "ax[0].set_xlabel('$x_1$')\n",
    "ax[0].set_ylabel('$x_2$');\n",
    "ax[0].set_title('ALE estimation')\n",
    "\n",
    "# vertical lines\n",
    "#VLINES = [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]\n",
    "VLINES = exp.feature_values[0]\n",
    "for line in VLINES:\n",
    "    ax[0].axvline(line, ls=':', c='k');\n",
    "\n",
    "# ALE\n",
    "#LOWER = 0.4\n",
    "#UPPER = 0.6\n",
    "LOWER = exp.feature_values[0][3]\n",
    "UPPER = exp.feature_values[0][4]\n",
    "for px1, px2 in zip(subx1, subx2):\n",
    "    if (px1 > LOWER) & (px1 < UPPER):\n",
    "        ax[0].plot([LOWER, UPPER], [px2, px2], ls=':', marker='|', mew=3, c='C0');\n",
    "\n",
    "# labels for intervals\n",
    "labels = ['$N(1)$', '$N(2)$', '$N(3)$', '$N(4)$', '$N(5)$']\n",
    "offset = 0.025\n",
    "#positions = np.array([0.1, 0.3, 0.5, 0.7, 0.9]) - offset\n",
    "positions = exp.feature_values[0][:-1] + \\\n",
    "    (exp.feature_values[0][1:] - exp.feature_values[0][:-1]) / 2 - offset\n",
    "\n",
    "for pos, lab in zip(positions, labels):\n",
    "    ax[0].text(pos, 0.0, lab);\n",
    "\n",
    "ax[0].set_xticks(VLINES);\n",
    "ax[0].set_xticklabels(['$z_0$', '$z_1$', '$z_2$', '$z_3$', '$z_4$', '$z_5$']);\n",
    "\n",
    "# ALE plot\n",
    "#ax[1].plot(exp.feature_values[0], exp.ale_values[0], '-o');\n",
    "plot_ale(exp, features=[0], ax=ax[1]);\n",
    "#plot_ale(exp2, features=[0], ax=ax[1]);\n",
    "\n",
    "#ax[1].scatter(subx1, f(sub))\n",
    "\n",
    "ax[1].set_xlabel('$x_1$')\n",
    "ax[1].set_ylabel('ALE$(x_1)$');\n",
    "ax[1].set_title('ALE$(x_1)$ plot of $f(x_1, x_2) = x_1+x_2$');\n",
    "ax[1].get_legend().remove();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig('ale2.png', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 2, figsize=(12, 4))\n",
    "\n",
    "# ALE1 plot\n",
    "plot_ale(exp, features=[0], ax=ax[0]);\n",
    "\n",
    "ax[0].set_xlabel('$x_1$')\n",
    "ax[0].set_ylabel('ALE$(x_1)$');\n",
    "ax[0].set_title('ALE$(x_1)$ plot')\n",
    "ax[0].get_legend().remove();\n",
    "\n",
    "# ALE2 plot\n",
    "plot_ale(exp, features=[1], ax=ax[1]);\n",
    "\n",
    "ax[1].set_xlabel('$x_2$')\n",
    "ax[1].set_ylabel('ALE$(x_2)$');\n",
    "ax[1].set_title('ALE$(x_2)$ plot');\n",
    "ax[1].get_legend().remove();"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig.savefig('ale_plots.png', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  },
  "nbsphinx": {
   "orphan": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
